package cuiyt.juc.cas;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * @author cyt
 * @create 2020-05-03 22:44
 */
public class demo02 {

    // 狸猫换太子的问题： 在当前线程执行任务中， 另外一个线程出来捣乱， 修该了变量， 但是在线程结束的时候又把变量修改过来了。
    // 之前的线程并不知道 自己所依赖的变量被修该！！！
    public static void main(String[] args) {
        AtomicInteger integer = new AtomicInteger(2020);
        // 捣乱的线程
        integer.compareAndSet(2020, 2021);
        System.out.println(integer.get());
        integer.compareAndSet(2021, 2020);
        System.out.println(integer.get());
        integer.compareAndSet(2020, 666);
        System.out.println(integer.get());
    }
}
